package com.xiaoxu;

import java.util.ArrayList;
import java.util.Scanner;

public class BankCount {
	//柜员类
	    //利用数组列表存储账户信息
	    ArrayList<BankAccount> array = BankAccount.list;
	    //主界面
	    public void user() {
			System.out.println(array);
	    	while (true){
				System.out.println("---欢迎进入柜员管理系统----");
				System.out.println("1 开户");
				System.out.println("2 删除账号");
				System.out.println("3 更改账号信息");
				System.out.println("4 查看所有用户");
				System.out.println("5 退出");
				System.out.println("请输入您的选择：");
				Scanner sc = new Scanner(System.in);//用Scanner实现键盘录入数据
				int in=sc.nextInt();
				//用switch语句完成操作的选择
				switch (in) {
					case 1:
						addBankAccount(array);//开户
						break;
					case 2:
						deleteBankAccount(array);//删除账户
						break;
					case 3:
						updateBankAccount(array);//更改账号信息
						break;
					case 4:
						selectAllCount(array);
						break;
					case 5:
						System.out.println("欢迎下次使用");
						System.exit(0); //退出
				}
			}

	    }

	private void selectAllCount(ArrayList<BankAccount> array) {
		array.forEach(System.out::println);
	}

	//定义一个方法addBankAccount()，用于添加账户信息
	   public static void addBankAccount(ArrayList<BankAccount> array) {
	        //键盘录入账户对象所需要的数据，显示提示信息，提示要输入何种信息
	        Scanner sc = new Scanner(System.in);
	        String id;
	        while (true) {
	            System.out.println("请输入账号：");
	            id = sc.next();
	            boolean flag = isUsed(array, id);
	            if (flag) {
	                System.out.println("你输入的账号已经被注册，请重新输入");
	            } else {
	                break;
	            }
	        }

	        System.out.println("请输入开户人姓名：");
	        String name = sc.next();
	        System.out.println("请输入开户密码：");
	        String password = sc.next();
	        System.out.println("请输入开户人身份证号：");
	        String idNumber = sc.next();
	        System.out.println("请输入开户人联系电话：");
	        String phoneNumber = sc.next();
	        //创建账户对象，把键盘录入的数据赋值给账号对象成员变量
	        BankAccount s = new BankAccount();
	        s.setId(id);
	        s.setName(name);
	        s.setPassword(password);
	        s.setIdNumber(idNumber);
	        s.setPhoneNumber(phoneNumber);
	        array.add(s);//将账号对象添加到集合中
	        System.out.println("开户成功");
	    }

	    //定义一个方法，判断账号是否被使用
	    public static boolean isUsed(ArrayList<BankAccount> array, String id) {
	        //如果与集合中的某一账号相同，返回true;如果都不相同，返回false
	        boolean flag = false;
	        for (int i = 0; i < array.size(); i++) {
	            BankAccount s = array.get(i);
	            if (s.getId().equals(id)) {
	                flag = true;
	                break;
	            }
	        }
	        return flag;
	    }

	    //定义一个方法，用于删除账户信息
	    public static void deleteBankAccount(ArrayList<BankAccount> array) {
	        //键盘录入要删除的账号，显示提示信息
	        Scanner sc = new Scanner(System.in);

	        System.out.println("请输入你要删除的账号：");
	        String in = sc.next();
	        int index = -1;

	        for (int i = 0; i < array.size(); i++) {//在删除操作前，对账号是否存在进行判断
	            BankAccount s = array.get(i);
	            if (s.getId().equals(in)) {
	                index = i;
	                break;
	            }
	        }

	        if (index == -1) {
	            System.out.println("该账号信息不存在，请重新输入！");
	        } else {
	            array.remove(index);
	            System.out.println("删除账号成功");//遍历集合将对应账号从集合中删除
	        }
	    }

	    //定义一个方法，用于修改账号
	    public static void updateBankAccount(ArrayList<BankAccount> array) {
	        //键盘输入要修改的账号，显示提示信息
	        Scanner sc = new Scanner(System.in);

	        System.out.println("请输入你要修改的账号：");
	        String in = sc.nextLine();

	        int index = -1;
	        //遍历结合修改账号信息
	        for (int i = 0; i < array.size(); i++) {
	            BankAccount BankAccount = array.get(i);
	            if (BankAccount.getId().equals(in)) {
	                index = i;
//			                array.set(i,s);
	                break;
	            }
	        }
	        if (index == -1) {
	            System.out.println("不存在要修改账号，请重新输入！");
	        } else {
	            //键盘录入要修改的学生信息
	            System.out.println("请输入新的账号：");
	            String Id = sc.next();
	            System.out.println("请输入姓名：");
	            String name = sc.next();
	            System.out.println("请输入密码：");
	            String password = sc.next();
	            System.out.println("请输入身份证号：");
	            String idNumber = sc.next();
	            System.out.println("请输入联系电话：");
	            String phoneNumber = sc.next();

	            //创建一个用户对象
	            BankAccount s = new BankAccount();
	            s.setId(Id);
	            s.setName(name);
	            s.setPassword(password);
	            s.setIdNumber(idNumber);
	            s.setPhoneNumber(phoneNumber);

	            array.set(index, s);
	            //给出修改成功提示
	            System.out.println("修改账号信息成功");
	        }
	    }
	}

